package com.mmq.ets.modele;

import java.awt.Color;
import java.awt.Graphics;
/**
	Cette classe possède les configurations de base pour un rectangle
	@author Francisco Quilodran Chavez
	@version 1.1
*/
public class Rectangle extends AbstractForme
{
	private int base;
	private int hauteur;
	

	public Rectangle() 
	{
		//super(Labo1Const.POSITION_INITIAL_X,Labo1Const.POSITION_INITIAL_Y);
		this.setCouleur(Color.cyan);
	}

	/** Le constructeur calculera la base et la hauteur du rectangle en fonctions des paramètres
	 * @see Voir definition des arguments dans la Classe Forme
     * @param nseq numéro d'identification
     * @param pointDepartX Point depart x.
     * @param pointDepartY Point depart y.
     * 
     * @param pointArriveeX Point final x. 
     * @param pointArriveeY Point final y.
     * @param couleur est definie par défaut cyan.
	 */
	public Rectangle(int nseq, int pointDepartX, int pointDepartY,int pointArriveeX,int pointArriveeY ) {
		super(nseq,pointDepartX, pointDepartY);
		this.base=pointArriveeX-pointDepartX;
		this.hauteur=pointArriveeY-pointDepartY;
		this.setCouleur(new Color(0f,1f,1f, 0.7f));
		
	}
	@Override
	public void dessinerForme(Graphics g) 
	{
		g.setColor(this.getCouleur());
		g.fillRect(getPointDepartX(), getPointDepartY(), base, hauteur);
		g.setColor(Color.BLACK);
		g.drawRect(getPointDepartX(), getPointDepartY(), base, hauteur);
	}
	  /**
     * 
     * @return La hauteur du rectangle
     */
	public double getHauteur() {
		return hauteur;
	}
	/**
	 * @param hauteur hauteur du rectangle
	 */
	public void setHauteur(int hauteur) {
		this.hauteur = hauteur;
	}
	/**
	 * 
	 * @return la base du rectangle
	 */
    public int getBase() 
    {
		return base;
	}
    /**
     * @param base base du rectangle
     * 
     */
	public void setBase(int base) {
		this.base = base;
	}
	@Override
	public double getAire() 
	{
		return this.base*this.hauteur;
	}

	@Override
	public double getDistanceMaximale() 
	{
		return Math.sqrt(Math.pow(base,2)+Math.pow(hauteur,2));
	}

	@Override
	public double getLargeur() {
		
		return base;
	}

}
